package com.ruoyi.resume.enums;

public enum SplitResumePrompt {

    SPLIT_RESUME_WITH_GLM("请严格扮演文本解析器角色，你的任务是完整提取（不要概括、不要简化）原始简历中的以下部分：\n"
            + "1. 基本信息（姓名、联系方式等）\n"
            + "2. 教育经历（按时间倒序排列）\n"
            + "3. 实习经历（保留具体职责描述）\n"
            + "4. 工作经历（保留项目细节）\n"
            + "5. 项目经历（保留技术细节）\n"
            + "6. 相关技能（保持原始技能描述格式）\n"
            + "7. 其他信息\n\n"
            + "请特别注意：\n"
            + "- 技能部分必须保留原始表述方式（如：'Java：熟悉...'）\n"
            + "- 不要合并同类项，保持原有分项\n"
            + "- 不要添加任何括号补充说明\n"
            + "- 不要修改原始技术术语\n\n"
            + "按以下模板返回（示例）：\n"
            + "基本信息：\n王某某 | 123-4567-8900 | example@email.com等其他基本信息\n\n"
            + "相关技能：\nJava：熟悉Java基础，多线程、JVM...\nPython：熟悉基础语法及常用库\n\n"
            + "-----\n"
            + "待处理文本：\n%s"),

    SPLIT_BASIC_INFO("请从以下文本中提取以下字段的信息，并按照以下格式返回：\n\n" +
            "字段：\n" +
            "- 姓名\n" +
            "- 电话\n" +
            "- 学校\n" +
            "- 民族\n" +
            "- 学历\n" +
            "- 电子邮件\n" +
            "- 居住地\n" +
            "- 政治面貌\n" +
            "- 性别\n" +
            "- 年龄\n\n" +
            "返回格式要求：\n" +
            "1. 每行一个字段，字段名和值用冒号分隔，例如：\n" +
            "姓名: 张三\n" +
            "电话: 123456789\n" +
            "学校: 北京大学\n" +
            "民族: 汉族\n" +
            "学历: 本科\n" +
            "电子邮件: zhangsan@example.com\n" +
            "居住地: 北京市\n" +
            "政治面貌: 党员\n" +
            "性别: 男\n" +
            "年龄: 25\n\n" +
            "2. 如果某个字段没有找到，请返回 `无`，例如：\n" +
            "政治面貌: 无\n" +
            "性别: 无\n" +
            "年龄: 无\n\n" +
            "文本内容：%s"),

    SPLIT_EDUCATION_BACKGROUND("请从以下文本中提取教育背景信息，并按照以下格式返回：\n\n" +
            "每个教育背景包含以下字段：\n" +
            "- 学校名称\n" +
            "- 专业名称\n" +
            "- 起始时间(yyyy-MM)\n" +
            "- 终止时间(yyyy-MM或至今)\n" +
            "- 学历\n" +
            "- 相关课程列表\n\n" +
            "返回格式要求：\n" +
            "1. 每个教育背景占一段，字段名和值用冒号分隔，例如：\n" +
            "学校名称: 北京大学\n" +
            "专业名称: 计算机科学与技术\n" +
            "起始时间: 2015-09\n" +
            "终止时间: 2019-06\n" +
            "学历: 本科\n" +
            "相关课程列表: 数据结构, 操作系统, 计算机网络\n\n" +
            "2. 如果某个字段没有找到，请返回 `无`，例如：\n" +
            "相关课程列表: 无\n\n" +
            "文本内容：%s"),

    SPLIT_WORK_EXPERIENCE("请从以下文本中提取工作经历信息，并按照以下格式返回：\n\n" +
            "每个工作经历包含以下字段：\n" +
            "- 公司名称\n" +
            "- 职位\n" +
            "- 部门\n" +
            "- 起始时间(yyyy-MM)\n" +
            "- 终止时间(yyyy-MM或至今)\n" +
            "- 项目名称\n" +
            "- 项目描述\n\n" +
            "返回格式要求：\n" +
            "1. 每个工作经历占一段，字段名和值用冒号分隔，例如：\n" +
            "公司名称: ABC科技有限公司\n" +
            "职位: 软件工程师\n" +
            "部门: 开发部\n" +
            "起始时间: 2020-06\n" +
            "终止时间: 2023-05\n" +
            "项目名称: 企业管理系统\n" +
            "项目描述: 1.参与推荐算法的优化、2.参与订单模块编写等（这个要写全）\n\n" +
            "2. 如果某个字段没有找到，请返回 `无`，例如：\n" +
            "部门: 无\n\n" +
            "文本内容：%s"),

    SPLIT_INTERNSHIP_EXPERIENCE("请从以下文本中提取实习经历信息，并按照以下格式返回：\n\n" +
            "每个实习经历包含以下字段：\n" +
            "- 公司名称\n" +
            "- 职位\n" +
            "- 部门\n" +
            "- 起始时间(yyyy-MM)\n" +
            "- 终止时间(yyyy-MM或至今)\n" +
            "- 项目名称\n" +
            "- 项目描述\n\n" +
            "返回格式要求：\n" +
            "1. 每个实习经历占一段，字段名和值用冒号分隔，例如：\n" +
            "公司名称: 阿里巴巴\n" +
            "职位: 实习生\n" +
            "部门: 技术研发部\n" +
            "起始时间: 2021-07\n" +
            "终止时间: 2021-09\n" +
            "项目名称: 淘宝推荐系统\n" +
            "项目描述: 1.参与推荐算法的优化、2.参与订单模块编写等（这个要写全）\n\n" +
            "2. 如果某个字段没有找到，请返回 `无`，例如：\n" +
            "项目描述: 无\n\n" +
            "文本内容：：%s"),

    SPLIT_PROJECT_EXPERIENCE("请从以下文本中提取项目经历信息，并按照以下格式返回：\n\n" +
                                     "每个项目经历包含以下字段：\n" +
                                     "- 项目名称\n" +
                                     "- 角色\n" +
                                     "- 起始时间(yyyy-MM)\n" +
                                     "- 终止时间(yyyy-MM或至今)\n" +
                                     "- 项目描述\n\n" +
                                     "返回格式要求：\n" +
                                     "1. 每个项目经历占一段，字段名和值用冒号分隔，例如：\n" +
                                     "项目名称: 智能推荐系统\n" +
                                     "角色: 算法工程师\n" +
                                     "起始时间: 2022-05\n" +
                                     "终止时间: 2023-03\n" +
                                     "项目描述: 负责优化推荐算法，提升用户点击率\n\n" +
                                     "2. 如果某个字段没有找到，请返回 `无`，例如：\n" +
                                     "项目描述: 无\n\n" +
                                     "文本内容：%s"),

    SPLIT_PROFESSIONAL_SKILLS("请从以下文本中提取相关技能信息，并按照以下格式返回：\n\n" +
                                      "每项相关技能包含以下字段：\n" +
                                      "- 技能名称\n" +
                                      "- 技能描述（包括取得证书、工作经历等）\n\n" +
                                      "返回格式要求：\n" +
                                      "1. 每项技能占一段，字段名和值用冒号分隔，例如：\n" +
                                      "技能名称: Java开发\n" +
                                      "技能描述: 拥有5年Java后端开发经验，主导多个微服务架构项目，持有Oracle Certified Professional, Java SE 11 Developer证书\n\n" +
                                      "2. 如果某个字段没有找到，请返回 `无`，例如：\n" +
                                      "技能描述: 无\n\n" +
                                      "文本内容：%s");

    private final String prompt;

    SplitResumePrompt(String prompt) {
        this.prompt = prompt;
    }

    public String getPrompt(String content) {
        return String.format(prompt, content);
    }
}
